﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Windows.Forms;
using System.Drawing;

namespace Jc.MicroDesigner.Drawings
{
    /// <summary>
    /// Инструмент рисования
    /// </summary>
    public class DrawingTool
    {
        /// <summary>
        /// Имя инструмента
        /// </summary> 
        protected string _Name = "";

        /// <summary>
        /// Категория
        /// </summary>
        protected string _Category = "";
 
        /// <summary>
        /// Курсор мыши
        /// </summary>
        protected Cursor _ToolCursor = Cursors.Default;

        /// <summary>
        /// Имя инструмента
        /// </summary>
        public string Name
        {
            get
            {
                return _Name;
            }
        }

        /// <summary>
        /// Категория панели инструментов
        /// </summary>
        public string Category
        {
            get
            {
                return _Category;
            }
            set
            {
                _Category = value;
            }
        }

        /// <summary>
        /// Курсор для инструмента
        /// </summary>
        public Cursor ToolCursor
        {
            get
            {
                return _ToolCursor;
            }
        }

        #region События применения элемента

        /// <summary>
        /// При нажатии на кнопку мыши
        /// </summary>
        /// <param name="panel">Холст</param>
        /// <param name="e">Аргумент</param>
        public virtual void OnMouseDown(DrawPanel panel, MouseEventArgs e)
        {
 
        }

        /// <summary>
        /// После нажатия на кнопку мыши
        /// </summary>
        /// <param name="panel">Холст</param>
        /// <param name="e">Аргумент</param>
        public virtual void OnMouseUp(DrawPanel panel, MouseEventArgs e)
        {
 
        }

        /// <summary>
        /// При движении мыши
        /// </summary>
        /// <param name="panel">Холст</param>
        /// <param name="e">Аргумент</param>
        public virtual void OnMouseMove(DrawPanel panel, MouseEventArgs e)
        {

        }

        /// <summary>
        /// Отрисовка холста
        /// </summary>
        /// <param name="panel">Холст</param>
        /// <param name="g">Объект рисования</param>
        public virtual void OnPaintScheme(DrawPanel panel,Graphics g)
        {
 
        }

        /// <summary>
        /// Активация инструмента
        /// </summary>
        /// <param name="toolbox">Панель инструментов</param>
        public virtual void OnActivate(IToolBox toolbox)
        {

        }

        /// <summary>
        /// Использование инструмента прекращается
        /// </summary>
        public virtual void OnDeactivate()
        {
        }

        #endregion
    }
}